// $Id$
// Author : Anushi Shah, Kyoungho An
#ifndef __NEANODE_INTERNAL_H__
#define __NEANODE_INTERNAL_H__

#include "ace/Time_Value.h" // for time value data structure
#include "ace/Event_Handler.h" // for event handling

#include "tao/Basic_Types.h"  // all the CORBA basic types
#include "tao/ORB.h"          // the ORB itself

#include "ftrtcs/TurnaroundActuatorC.h"
//#include "ftrtcs/TurnaroundNEANodeC.h"

/// An OO abstraction of the sensor object.
class NEANodeInternalClient
{
public:

  // constructor
  NEANodeInternalClient (CORBA::ORB_ptr orb);

  /// destructor
  ~NEANodeInternalClient (void);

  /// parse arguments
  int parse_args (int argc, char *argv[]);

  /// initialization, where we register ourselves for a timeout
  int init (void);
  Block::Turnaround::TurnaroundActuator_var actuator_;

private:
  /// maintain a smart pointer to the ORB
  CORBA::ORB_var orb_;

  /// IOR of the Diagnostics component
  CORBA::String_var ior_;

  /// our sensing rate
  CORBA::ULong  freq_;

  /// timer id
  long  timer_id_;


};

#endif 
